package tplenguajes.grafo;

import java.util.Set;

interface Graph<V>
{
	public boolean addVertex(V v);
	public boolean addEdge(V src, V dst, Edge<V> e);
	
	public boolean removeVertex(V v);
	public boolean removeEdge(Edge<V> e);
	public Edge<V> removeEdge(V src, V dst);
	
	public V getEdgeSource(Edge<V> e);
	public V getEdgeTarget(Edge<V> e);
	
	public boolean containsVertex(V v);
	public boolean containsEdge(Edge<V> e);
	
	public Edge<V> getEdge(V src, V dst);
	
	public Set<V> getVertices();
	public Set<Edge<V>> getEdges();
}
